/*描述
小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数，但是他竟然不会求两个正整数的最大公约数与最小公倍数之和，请你帮助他解决这个问题。

输入描述：
每组输入包含两个正整数n和m。(1 ≤ n ≤ 109，1 ≤ m ≤ 109)

输出描述：
对于每组输入，输出一个正整数，为n和m的最大公约数与最小公倍数之和。
示例1
输入：
10 20
复制
输出：
30
复制
示例2
输入：
15 20
复制
输出：
65*/
#include<stdio.h>
#include<stdlib.h>

long long int multiple(long long int x, long long int y)
{
    long long int m, n;
    if (x < y)
    {
        m = x; x = y; y = m;
    }
    while (y != 0)
    {
        
        n = x % y;
        x = y;
        y = n;

    }
    return x;
}
long long int divisor(long long int a, long long int b)
{
    long long int m, t;
    t= multiple(a, b);
    m = a * b;
    return m / t;
}

int main()
{
    long long int a, b;
    scanf("%lld%lld", &a, &b);
    long long int c,d;
    c = multiple(a, b);
    d = divisor(a, b);
    printf("%lld",c+d);
    return 0;
}

